#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

//int cmpfunc(const void* a, const void* b)
//{
//	return (*(int*)a - *(int*)b);
//}
//
//bool canBeEqual(int* target, int targetSize, int* arr, int arrSize) {
//	qsort(target, targetSize, sizeof(int), cmpfunc);
//	qsort(arr, arrSize, sizeof(int), cmpfunc);
//	int i = 0;
//	for (i = 0; i < arrSize; i++)
//	{
//		if (arr[i] != target[i])
//		{
//			return false;
//		}
//	}
//	return true;
//}

//balloon
//int maxNumberOfBalloons(char* text) {
//	int arr[5] = { 0 };
//	while (*text)
//	{
//		switch (*text)
//		{
//		case 'a':
//			arr[0]++;
//			break;
//		case 'b':
//			arr[1]++;
//			break;
//		case 'l':
//			arr[2]++;
//			break;
//		case 'o':
//			arr[3]++;
//			break;
//		case 'n':
//			arr[4]++;
//			break;
//		default:
//			break;
//		}
//		text++;
//	}
//	arr[2] /= 2;
//	arr[3] /= 2;
//	int i = 0;
//	int min = arr[0];
//	for (i = 0; i < 5; i++)
//	{
//		if (arr[i] == 0)
//		{
//			return 0;
//		}
//
//		if (min > arr[i])
//			min = arr[i];
//	}
//	return min;
//}
//int main()
//{
//	char p[] = "balllllllllllloooooooooon";
//	int ret = maxNumberOfBalloons(p);
//	printf("%d", ret);
//	return 0;
//}int maxNumberOfBalloons(char* text) {
//	int arr[5] = { 0 };
//	while (*text)
//	{
//		switch (*text)
//		{
//		case 'a':
//			arr[0]++;
//			break;
//		case 'b':
//			arr[1]++;
//			break;
//		case 'l':
//			arr[2]++;
//			break;
//		case 'o':
//			arr[3]++;
//			break;
//		case 'n':
//			arr[4]++;
//			break;
//		default:
//			break;
//		}
//		text++;
//	}
//	arr[2] /= 2;
//	arr[3] /= 2;
//	int i = 0;
//	int min = arr[0];
//	for (i = 0; i < 5; i++)
//	{
//		if (arr[i] == 0)
//		{
//			return 0;
//		}
//
//		if (min > arr[i])
//			min = arr[i];
//	}
//	return min;
//}
//int main()
//{
//	char p[] = "balllllllllllloooooooooon";
//	int ret = maxNumberOfBalloons(p);
//	printf("%d", ret);
//	return 0;
//}

//bool threeConsecutiveOdds(int* arr, int arrSize) {
//	int i = 0;
//	for (i = 0; i < arrSize-2; i++)
//	{
//		if ((arr[i] % 2 == 1) && (arr[i + 1] % 2 == 1) && (arr[i + 2] % 2 == 1))
//		{
//			return true;
//		}
//	}
//	return false;
//}

//int cmpfunc(const void* a, const void* b)
//{
//	return (*(int*)a - *(int*)b);
//}
//
//bool check(int* nums, int numsSize) {
//	int* arr1 = (int*)malloc(sizeof(int) * (2 * numsSize));
//	int* arr2 = (int*)malloc(sizeof(int) * numsSize);
//	int i = 0;
//	for (i = 0; i < numsSize; i++)
//	{
//		arr1[i] = nums[i];
//		arr2[i] = nums[i];
//	}
//	qsort(arr2, numsSize, sizeof(int), cmpfunc);
//	for (i; i < 2 * numsSize; i++)
//	{
//		arr1[i] = nums[i - numsSize];
//	}
//	int n = 0;
//	for (i = 0; i < 2 * numsSize; i++)
//	{
//		if (arr1[i] == arr2[n])
//		{
//			n++;
//
//			if (n == numsSize)
//			{
//				free(arr1);
//				free(arr2);
//				arr1 = NULL;
//				arr2 = NULL;
//				return true;
//			}
//		}
//		else
//		{
//			n = 0;
//		}
//	}
//	free(arr1);
//	free(arr2);
//	arr1 = NULL;
//	arr2 = NULL;
//	return false;
//}

//int findSpecialInteger(int* arr, int arrSize) {
//	if (arrSize < 4)
//	{
//		return arr[0];
//	}
//	int i = 0;
//	int flag = 1;
//	for (i = 0; i < arrSize - 1; i++)
//	{
//		if (arr[i] == arr[i + 1])
//		{
//			flag++;
//		}
//		else
//		{
//			flag = 1;
//		}
//		if (flag > arrSize / 4)
//		{
//			return arr[i];
//		}
//	}
//	return 0;
//}
//int main()
//{
//	int arr[] = { 1,2,3,3 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	int ret = findSpecialInteger(arr, sz);
//	return 0;
//}

int cmpfunc(const void* a, const void* b)

{
	return (*(int*)a - *(int*)b);
}

bool canBeEqual(int* target, int targetSize, int* arr, int arrSize) {

	qsort(target, targetSize, sizeof(int), cmpfunc);

	qsort(arr, arrSize, sizeof(int), cmpfunc);

	int i = 0;

	for (i = 0; i < arrSize; i++)

	{

		if (arr[i] != target[i])

		{

			return false;

		}

	} return true;

}